CREATE PROCEDURE GGRR_MODIFICAR_PRODUCTO
@IDPROD INTEGER,
@NOMBRE VARCHAR(100),
@DESC VARCHAR(200),
@TIPOPROD INTEGER,
@UNIDAD VARCHAR(100),
@ESTADOTRAN INTEGER OUTPUT
AS

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

BEGIN TRANSACTION

DECLARE @IDTIPO INTEGER
--hay 3 tipos de estado: 0=ERROR, 1=CORRECTO, 2=YA ESTA REGISTRADO

BEGIN TRY
	--obtenemos el id del tipo del producto
	SET @IDTIPO = (SELECT @IDTIPO FROM TIPOPRODUCTO
					 WHERE DESCRIPCION = @TIPOPROD)
	--modificamos los datos actuales del producto
	
	UPDATE PRODUCTO SET NOMBRE=@NOMBRE, DESCRIPCION=@DESC, UNIDAD=@UNIDAD, IDTIPOPRODUCTO=@TIPOPROD	
	WHERE IDPRODUCTO=@IDPROD
	
	--si no hay errores, se termina la transaccion
	SET @ESTADOTRAN = 1
	COMMIT TRANSACTION	
END TRY
BEGIN CATCH
	SET @ESTADOTRAN = 0
	ROLLBACK TRANSACTION
END CATCH
	